
package com.xinan.system.curd;

import com.jfinal.aop.Before;
import com.jfinal.core.BaseController;
import com.jfinal.core.Const;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.SearchSql;
import com.jfinal.kit.JsonKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Page;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.render.JsonRender;
import com.xinan.utils.Constants;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class AuthOrgController extends BaseController {
    private List<?> data;

    public void index() {
        render("/WEB-INF/views/authOrg/authOrg.html");
    }

    /**
     * 在增加了SearchSql拦截之后，就可以根据页面的配置信息
     * 自动装配查询语句，并放入request中，可以通过getAttr(Const.SEARCH_SQL)函数获取到
     * 根据实际需要自动组装到sql语句中
     */
    @Before(SearchSql.class)
	public void query() {
        int pageNumber = getParaToInt("page");
        int pageSize = getParaToInt("rows");
        String where = getAttr(Const.SEARCH_SQL);
        Page<AuthOrg> page = AuthOrg.dao.page(pageNumber, pageSize, where);
        Map root = new HashMap();
     		// / jqgrid用 分页显示
     		root.put("total", page.getTotalRow());
     		root.put("rows", page.getList());
     		renderJson(JsonKit.toJson(root));
	}

    /**
     * 保存数据
     */
	public void save() {
        if(getModel(AuthOrg.class).save()){
          //  renderJson(Constants.SAVESUCCESS);
			render(new JsonRender(Constants.SAVESUCCESS).forIE());

        }else{
       //     renderJson(Constants.SAVEFAILED);
			render(new JsonRender(Constants.SAVEFAILED).forIE());

        }
	}

    /**
     * Post请求的菜单更新函数，可以接受菜单的id和菜单对象，并根据菜单id进行更新，并返回影响行数，据此判断是否操作成功
     * 此处使用rose框架的rest风格url，可以把参数作为路径的一部分进行传递
     */
	public void update() {
        if(getModel(AuthOrg.class).update()){
       //     renderJson(Constants.EDITSUCCESS);
			render(new JsonRender(Constants.EDITSUCCESS).forIE());

        }else{
        //    renderJson(Constants.EDITFAILED);
			render(new JsonRender(Constants.EDITFAILED).forIE());

        }
	}

    public void edit() {
        Record org = Db.findById("auth_org", "id", getPara("id"), "id,name,code,descinfo,shortname,enname,managername,phone,email,contactname,contactmobile,rmk"); //  根据部门编号取出 打印标示0 不打印 1 打印
            setAttr("id",org.get("id"));   //id

            setAttr("name",org.get("name"));   //机构名称
            setAttr("code",org.get("code"));  //      机构编码
            setAttr("descinfo",org.get("descinfo"));     //机构描述
            setAttr("shortname",org.get("shortname"));     //   机构简称
            setAttr("enname",org.get("enname"));           //    英文名字
            setAttr("managername",org.get("managername")); //  负责人姓名
            setAttr("phone",org.get("phone"));             //    phone
            setAttr("email",org.get("email"));             //
            setAttr("contactname",org.get("contactname")); //    联系人姓名
            setAttr("contactmobile",org.get("contactmobile")); //   联系人手机号
            setAttr("rmk",org.get("rmk"));                     //   备注

        render("/WEB-INF/views/system/authOrg_form.html");
    }

    /**
     * Post请求的菜单删除函数，可以接受菜单的id，并根据菜单进行物理删除，并返回影响行数，据此判断是否操作成功
     */
	public void delete() {
        if(AuthOrg.dao.deleteById(getParaToInt())){
          //  renderJson(Constants.DELETESUCCESS);
			render(new JsonRender(Constants.DELETESUCCESS).forIE());

        }else{
         //   renderJson(Constants.DELETEFAILED);
			render(new JsonRender(Constants.DELETEFAILED).forIE());

        }
	}



}

